<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        /* 
            疫情逐步缓和后，电影院终于开业了，但是由于当前仍处于疫情期间，应尽量保持人群不聚集的原则。
            所以当小易来电影院选定一排后，尽量需要选择一个远离人群的位置。
            已知由0和1组成的数组表示当前排的座位情况, 其中1表示已被选座，0表示空座
            请问小易所选座位和最近人的距离座位数最大是多少？
            有如下假设：至少有一个人已选座，至少有一个空座位，且座位数限制为2<=length<=1000
         */
        /* 
            输入描述:
            一行由0和1组成的整数数组
            输出描述:
            仅一行一个整数表示答案
            输入例子1:
            1 0 0 0 1 0 1
            输出例子1:
            2
            例子说明1:
            小易第3个座位最合适，则和座位1 / 座位5的距离为2
            输入例子2:
            1 0 1 0 1
            输出例子2:
            1
            例子说明2:
            小易可以选择第2个座位或者第4个座位，距离为1
         */
        // let arr = [1, 0, 0, 0, 1, 0, 1];
        // let arr = [1, 0, 1, 0, 1];
        let arr = [0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1]; // 1 8
        // let arr = [1, 1, 0];
        // let arr = [0, 1, 1]
        function judge(arr) {
            let index = [];
            let max = 0;
            let distance = 0;
            let best = 0;
            for (let i = 0; i < arr.length; i++) {
                if (arr[i] == 1)
                    index.push(i);
            }
            for (let i = 0; i < index.length - 1; i++) {
                //空座不在首尾的情况
                if ((index[i + 1] - index[i]) > max) {
                    max = index[i + 1] - index[i];
                    best = parseInt((index[i + 1] + index[i]) / 2);
                    let front = best - index[i];
                    let back = index[i + 1] - index[i] - best;
                    distance = front < back ? front : back;
                }
            }
            return distance;
        }
        console.log(judge(arr));
    </script>
</body>

</html>